package edu.friday.service;

import edu.friday.common.result.TableDataInfo;
import edu.friday.model.SysRole;
import edu.friday.model.vo.SysRoleVO;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Pageable;

import java.util.Collection;
import java.util.List;
import java.util.Set;

public interface ISysRoleService {
    TableDataInfo selectRoleList(SysRoleVO sysRoleVO, Pageable pageable);

    String checkRoleNameUnique(SysRoleVO sysRoleVO);

    String checkRoleKeyUnique(SysRoleVO sysRoleVO);

    boolean insertRole(SysRoleVO sysRoleVO);

    int deleteRoleByIds(Long[] roleIds);

    int updateRole(SysRoleVO sysRoleVO);

    SysRole findOne(Example<SysRole> example);

    List<SysRole> selectRoleAll();

    List<Long> selectRoleListByUserId(Long userId);

    SysRole selectRoleById(Long roleId);

    boolean updateStatus(SysRoleVO sysRoleVO);

    Set<String> selectRolePermissionByUserId(Long userId);
}
